Skip to main content

Configuración de Recursos en PCS

Introducción a los Recursos

En el contexto de los elementos controlados por los clústeres, se les denomina recursos. Estos resources pueden variar según su tipo, abarcando desde aplicaciones hasta volúmenes de almacenamiento. Los recursos pueden ser balanceados entre nodos, generalmente organizados en grupos. Algunos ejemplos de recursos incluyen:

  • Recursos de aplicación
  • Recursos de almacenamiento
  • Recursos de red
  • Recursos de clúster

Los recursos se identifican de la siguiente manera. Por ejemplo, en el documento de instalación se crearon dos recursos:

  • ocf:heartbeat:IPaddr2
  • ocf:heartbeat:apache

Cada recurso se compone de los siguientes elementos: Resource Standard : Resource Provider : Resource Agents.

Resource Standards

root@node1:~# pcs resource standards
lsb
ocf
service
systemd

Cada uno de estos Standars define cómo se deben implementar y gestionar los recursos en el clúster.

  • LSB (Linux Standard Base)
  • OCF (Open Cluster Framework)
  • Service
  • Systemd

De la documentación oficial de OCF

What is a resource agent? A resource agent is an executable that manages a cluster resource. No formal definition of a cluster resource exists, other than "anything a cluster manages is a resource." Cluster resources can be as diverse as IP addresses, file systems, database services, and entire virtual machines — to name just a few examples.

Resource Provider

root@node1:~# pcs resource providers
heartbeat
pacemaker

Estos providers definen la forma en que se implementan y gestionan los recursos, así como las operaciones que se pueden realizar sobre ellos. Cada uno de estos providers ofrece diferentes implementaciones de resource agents.

Resource Agents

root@node1:~# pcs resource agents ocf:heartbeat
apache
conntrackd
corosync-qnetd
-----
iface-vlan
IPaddr2
IPsrcaddr
-----
root@node1:~# pcs resource agents ocf:pacemaker
attribute
ClusterMon
controld
Dummy
HealthCPU

Este comando proporciona una lista de los tipos de agentes que se pueden definir e implementar. La lista es amplia y permite gestionar diversos componentes, incluyendo almacenamiento, redes, aplicaciones, entre otros.

Para acceder a la información de cada uno de estos agentes, utiliza la siguiente nomenclatura: man <Resource Standard>_<Resource Provider>_<Resource Agents>. Por ejemplo: man ocf_heartbeat_IPaddr2. Cabe destacar que estos agentes son, en esencia, scripts de shell. Para consultar el código fuente, puedes ver su repositorio en GitHub.

Configuración de recursos

Crear un recurso

Un ejemplo de creación de un recurso lo puedes encontrar en el documento anterior de instalación Crear Recurso de IP Virtual (VIP)

root@node1:~# pcs resource create VirtualIP IPaddr2 ip=10.10.10.100 cidr_netmask=24 --group apachegroup
root@node1:~# pcs status
---
Full List of Resources:
* Resource Group: apachegroup:
* VirtualIP (ocf:heartbeat:IPaddr2): Started node1

Ver estado de los recursos

root@node1:~# pcs resource status
* Resource Group: apachegroup:
* VirtualIP (ocf:heartbeat:IPaddr2): Started node1
* Website (ocf:heartbeat:apache): Started node1

Ver configuración de recursos

Para ver la configuración de recursos ejecutar pcs resource config <Resource>

root@node1:~# pcs resource config Website
Resource: Website (class=ocf provider=heartbeat type=apache)
Attributes: Website-instance_attributes
configfile=/etc/httpd/conf/httpd.conf
statusurl=http://127.0.0.1/server-status
Operations:
monitor: Website-monitor-interval-10s
interval=10s timeout=20s
start: Website-start-interval-0s
interval=0s timeout=40s
stop: Website-stop-interval-0s
interval=0s timeout=60s

Actualizar configuración de un recurso

Para actualizar la configuración de un recurso, es necesario especificar qué operación se desea modificar. En este caso existen disitinos timeouts.

note

Se recomienda usar la flag --agent-validation para evitar propagar errores en la configuración

root@node1:~# pcs resource update Website op monitor timeout=30s --agent-validation

Migrar recurso de nodo

root@node1:~# pcs resource move apachegroup node1
Location constraint to move resource 'apachegroup' has been created
Waiting for the cluster to apply configuration changes...

Clonar un recurso

Esto es especialmente útil si deseamos que un recurso se ejecute en varios nodos de forma simultánea. Podemos seleccionar el número de nodos en los que se puede clonar utilizando el flag clone_count=<n>. Este recurso aparecerá identificado como un clone set.

root@node1:~# pcs resource clone Website
root@node1:~# pcs status
Cluster name: megatroncluster
Cluster Summary:
* Stack: corosync (Pacemaker is running)
* Current DC: node2 (version 3.0.0-5.el10-7e73fd0) - partition with quorum
* Last updated: Fri Aug 15 22:43:00 2025 on node1
* Last change: Fri Aug 15 22:42:56 2025 by root via root on node1
* 2 nodes configured
* 3 resource instances configured

Node List:
* Online: [ node1 node2 ]

Full List of Resources:
* Resource Group: apachegroup:
* VirtualIP (ocf:heartbeat:IPaddr2): Started node1
* Clone Set: Website-clone [Website]:
* Started: [ node1 node2 ]
Daemon Status:
corosync: active/disabled
pacemaker: active/enabled
pcsd: active/enabled

Mantenimiento del cluster

Se activa cuando es necesario evitar que los recursos se balanceen de forma automática debido a tareas de mantenimiento. Durante este período, los recursos se mostrarán como en mantenimiento, pero continuarán funcionando normalmente.

root@node1:~# pcs property set maintenance-mode=true

root@node1:~# pcs status
Cluster name: megatroncluster
Cluster Summary:
* Stack: corosync (Pacemaker is running)
* Current DC: node2 (version 3.0.0-5.el10-7e73fd0) - partition with quorum
* Last updated: Fri Aug 15 22:53:17 2025 on node1
* Last change: Fri Aug 15 22:53:13 2025 by root via root on node1
* 2 nodes configured
* 3 resource instances configured

*** Resource management is DISABLED ***
The cluster will not attempt to start, stop or recover services

Node List:
* Online: [ node1 node2 ]

Full List of Resources:
* Resource Group: apachegroup (maintenance):
* VirtualIP (ocf:heartbeat:IPaddr2): Started node1 (maintenance)
* Clone Set: Website-clone [Website] (maintenance):
* Website (ocf:heartbeat:apache): Started node2 (maintenance)
* Website (ocf:heartbeat:apache): Started node1 (maintenance)

Tabla resumen

CategoríaComandoDescripción
Resource Standardspcs resource standardsMuestra los estándares de recursos disponibles (lsb, ocf, service, systemd).
Resource Providerspcs resource providersMuestra los proveedores de recursos disponibles (heartbeat, pacemaker).
Resource Agentspcs resource agents ocf:heartbeatLista los agentes de recursos disponibles bajo el proveedor heartbeat.
Listar resource agentspcs resource agents ocf:pacemakerLista los agentes de recursos disponibles bajo el proveedor pacemaker.
Crear un recursopcs resource create VirtualIP IPaddr2 ip=10.10.10.100 cidr_netmask=24 --group apachegroupCrea un recurso de IP virtual en el grupo apachegroup.
Ver estado de los recursospcs resource statusMuestra el estado de los recursos en el clúster.
Ver configuración de recursopcs resource config WebsiteMuestra la configuración de un recurso específico.
Actualizar configuraciónpcs resource update Website op monitor timeout=30s --agent-validationActualiza la configuración de un recurso, especificando un nuevo timeout.
Migrar recurso de nodopcs resource move apachegroup node1Mueve el recurso apachegroup al nodo especificado.
Clonar un recursopcs resource clone WebsiteClona el recurso Website para que se ejecute en varios nodos.
Activar modo mantenimientopcs property set maintenance-mode=trueActiva el modo de mantenimiento para evitar el balanceo automático de recursos.
Ver estado en mantenimientopcs statusMuestra el estado del clúster, indicando que los recursos están en mantenimiento.

Fuentes